<!--
 * @Descripttion: 
 * @Version: 
 * @Author: gaohj
 * @Date: 2022-12-29 14:45:08
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-12-29 14:53:22
-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 
        * 首先 在自己的作用域内 如果有这个变量 直接使用 停止查找 
            * 如果自己的作用域内没有 那么就会到父级作用域查找  如果有 直接使用 停止查找  
            * 如果父级作用域没有 再到父级的父级作用域查找  
            * 以此类推 直到全局作用域 window 都没有 那么就报错 ** is not defined            
        */


        // var n = 100;  // 作用域是全局 window
        function test(){
            // var n = 200; // 作用域是test
            function fn2(){
                // var n = 300; // 作用域是fn2 
                console.log(n); // 300 
            }
            fn2();
            
        }

        test();


        // 函数中可以写函数 
        // 但是这个写在函数中的函数不能在全局直接调用 
        // 因为他是局部作用域下的函数 
        // 全局不能使用局部 
        // 所以上述 fn2 必须在test里边才能调用 
        
    </script>
</body>
</html>